/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pck_com.pck_rrhh.pck_src.pck_services.pck_impl;

import com.ibatis.sqlmap.client.SqlMapException;
import com.tramitedocu.pojos.Cls_Trabajador;
import java.util.ArrayList;
import java.util.Map;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import pck_com.pck_rrhh.pck_src.pck_services.TrabajadorService;
import pck_com.pck_rrhh.pck_utiles.Cls_Parametros;

/**
 *
 * @author mx
 */
public class TrabajadorServiceImpl extends SqlMapClientDaoSupport implements TrabajadorService {

    public ArrayList<Cls_Trabajador> validarTrabajador(Map<String, String> parametros) {
        ArrayList<Cls_Trabajador> trabajador = null;
        try {
            trabajador = (ArrayList<Cls_Trabajador>)this.getSqlMapClientTemplate().queryForList(Cls_Parametros.FuncionIbt_Rrhh_VALIDAR_USUARIO, parametros);
            return trabajador;

        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        } catch (IndexOutOfBoundsException ex) {
            return null;
        }
    }

    public ArrayList<Cls_Trabajador> obtenerTodosUsuariosDao(Map<String, String> map) {
        try {
            ArrayList<Cls_Trabajador> list =
            (ArrayList<Cls_Trabajador>) this.getSqlMapClientTemplate().
                    queryForList(Cls_Parametros.FuncionIbt_Rrhh_LISTAR_USUARIOS_DE_JEFE, map,
                        (Integer.parseInt(map.get(Cls_Parametros.Map_PAGE))-1)*
                        Integer.parseInt(map.get(Cls_Parametros.Map_PAGE_TAMANIO)),
                        Integer.parseInt(map.get(Cls_Parametros.Map_PAGE_TAMANIO)));
            return list;
        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        } catch (SqlMapException _ex) {
            _ex.printStackTrace();
            return null;
        }
    }

    public ArrayList<Cls_Trabajador> obtenerTrabajadoresEpsGrau(Map<String, String> map) {

        try {
            ArrayList<Cls_Trabajador> list =
            (ArrayList<Cls_Trabajador>) this.getSqlMapClientTemplate().
                    queryForList(Cls_Parametros.FuncionIbt_Rrhh_TRABAJADORES_TODOS, map,
                    (Integer.parseInt(map.get(Cls_Parametros.Map_PAGE))-1)*
                        Integer.parseInt(map.get(Cls_Parametros.Map_PAGE_TAMANIO)),
                        Integer.parseInt(map.get(Cls_Parametros.Map_PAGE_TAMANIO)));
            return list;
        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        } catch (SqlMapException _ex) {
            _ex.printStackTrace();
            return null;
        }
    }

    public ArrayList<Cls_Trabajador> obtenerTrabajadoresCargosEpsGrau(Map<String, String> map) {

        try {
            ArrayList<Cls_Trabajador> list =
            (ArrayList<Cls_Trabajador>) this.getSqlMapClientTemplate().
                    queryForList(Cls_Parametros.FuncionIbt_Rrhh_TRABAJADOR_CARGOS, map);
            return list;
        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        } catch (SqlMapException _ex) {
            _ex.printStackTrace();
            return null;
        }
    }

    public String obtenerCantidadTrabajadoresArea(Map<String, String> map) {
        try {
            String dat = "" + this.getSqlMapClientTemplate().queryForObject(Cls_Parametros.FuncionIbt_Rrhh_CANTIDAD_TRABAJADORES_AREA, map);
            return dat;
        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        }
    }

    public String obtenerCantidadTrabajadores(Map<String, String> map) {
        try {
            String dat = "" + this.getSqlMapClientTemplate().queryForObject(Cls_Parametros.FuncionIbt_Rrhh_CANTIDAD_TRABAJADORES,map);
            return dat;
        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        }
    }
    public ArrayList<Cls_Trabajador> obtenerTrabajadoresSoloMailEpsGrau(Map<String, String> map) {
        try {
            ArrayList<Cls_Trabajador> list =
            (ArrayList<Cls_Trabajador>) this.getSqlMapClientTemplate().
                    queryForList(Cls_Parametros.FuncionIbt_Rrhh_TRABAJADORES_EMAIL, map,
                    (Integer.parseInt(map.get(Cls_Parametros.Map_PAGE))-1)*
                        Integer.parseInt(map.get(Cls_Parametros.Map_PAGE_TAMANIO)),
                        Integer.parseInt(map.get(Cls_Parametros.Map_PAGE_TAMANIO)));
            return list;
        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        } catch (SqlMapException _ex) {
            _ex.printStackTrace();
            return null;
        }
    }
    public String obtenerCantidadTrabajadoresSoloMailEpsGrau(Map<String, String> map) {
        try {
            String dat = "" + this.getSqlMapClientTemplate().queryForObject(Cls_Parametros.FuncionIbt_Rrhh_CANTIDAD_TRABAJADORES_MAIL,map);
            return dat;
        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        }
    }

    public Cls_Trabajador obtenerDatosTrabajador(Map<String, String> parametros) {
        Cls_Trabajador trabajador = null;
        try {
            trabajador = (Cls_Trabajador)this.getSqlMapClientTemplate().queryForObject(Cls_Parametros.FuncionIbt_Rrhh_OBTENER_DATOS_TRABAJADOR, parametros);
            return trabajador;

        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        } catch (IndexOutOfBoundsException ex) {
            return null;
        }
    }

    //implementando para la prueba
    public Cls_Trabajador mostrarTrabajador(Map<String, String> parametros) {
        Cls_Trabajador trabajador = null;
        try {
            trabajador = (Cls_Trabajador)this.getSqlMapClientTemplate().queryForObject(Cls_Parametros.FuncionIbt_Rrhh_MOSTRAR_USUARIO, parametros);
            return trabajador;

        } catch (DataAccessException ex) {
            ex.printStackTrace();
            return null;
        } catch (IndexOutOfBoundsException ex) {
            return null;
        }
    }

}
